import request from '@/utils/request'

// 获取商品详情，使用后端 data 字段构建 result（只保留 data 相关字段）
export const getDetailAPI = async (id) => {
  if (!id) return Promise.reject(new Error('缺少商品 id'))

  const res = await request({
    url: `/product/${id}`,
    method: 'get'
  })

  const data = res?.data || {}

  const mainPictures = [
    data?.pimage1,
    data?.pimage2,
    data?.pimage3,
    data?.pimage4,
    data?.pimage5
  ].filter(Boolean)

  const result = {
    id: data?.pid ?? '',
    name: data?.pname ?? '',
    desc: data?.pdetail ?? '',
    mainPictures,
    // 保留原始 pcatid，方便在页面调用基于该 id 的分类树接口
    pcatid: data?.pcatid ?? '',
    categories: data?.pcatid ? [{ id: data.pcatid, name: '' }] : [],
    details: {
      properties: data?.pdetail ? [{ name: '商品简介', value: data.pdetail }] : [],
      pictures: mainPictures
    }
  }

  return {
    ...res,
    result
  }
}

// 新增：根据商品 pid 获取 SKU 列表并归一化字段
export const getSkusAPI = async (pid) => {
  if (!pid) return Promise.reject(new Error('缺少商品 pid'))

  const res = await request({
    url: `/sku/product/${pid}`,
    method: 'get'
  })

  // 后端可能返回 data 或 result 或直接数组
  const list = res?.data ?? res?.result ?? res ?? []
  const arr = Array.isArray(list) ? list : []

  const skus = arr.map(s => ({
    skuId: s?.skuid ?? s?.skuId ?? '',
    pid: s?.pid ?? s?.pid ?? '',
    name: s?.skuname ?? s?.name ?? '',
    price: s?.pricesell ?? s?.price ?? 0,
    originPrice: s?.priceorigion ?? s?.priceOrigin ?? 0,
    stock: s?.stocknum ?? s?.stock ?? 0,
    raw: s
  }))
  

  return {
    ...res,
    result: skus
  }
}

// 根据SKU ID获取商品信息
export const getProductBySkuIdAPI = async (skuId) => {
  if (!skuId) return Promise.reject(new Error('SKU ID不能为空'))

  const res = await request({
    url: `/sku/${skuId}/product`,
    method: 'get'
  })

  // 如果后端返回错误
  if (res?.code !== 200) {
    return Promise.reject(new Error(res?.msg || '获取商品信息失败'))
  }

  const data = res?.data || {}

  // 构建商品信息对象，包含完整的商品信息
  const product = {
    id: data?.pid ?? '',
    name: data?.pname ?? '',
    desc: data?.pdetail ?? '',
    pcatid: data?.pcatid ?? '',
    plistsate: data?.plistsate ?? 0,
    ponlinedate: data?.ponlinedate ?? '',
    pofflinedate: data?.pofflinedate ?? '',
    ponlineuserid: data?.ponlineuserid ?? null,
    pofflineuserid: data?.pofflineuserid ?? null,
    // 图片信息
    mainPictures: [
      data?.pimage1,
      data?.pimage2,
      data?.pimage3,
      data?.pimage4,
      data?.pimage5
    ].filter(Boolean),
    // 原始数据
    raw: data
  }
  console.log('商品信息:', product)
  return {
    ...res,
    result: product
  }
}